Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Фрактали

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
ЗІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Комп'ютерна графіка

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ (II-га В.О.) / ЛАБОРАТОРНА РОБОТА №2 з предмету: «Комп’ютерна графіка» на тему: «Фрактали» Тема: Фрактали. Мета: Ознайомитись на практиці із основними поняттями теорії фракталів, навчитись будувати різні фрактальні зображення та використовувати IFS, як простий засіб отримання фрактальних структур. Теоретичні відомості Умова завдання. 16 *Побудувати фрактал, який наведено на рис. 1   / Рис. 1. Вигляд фракталу Назва фракталу: Листок папороті. Опис фракталу: Фрактал належить до класу стохастичних фракталів, які виходять в тому випадку, коли в ітераційному процесі випадковим чином міняти які-небудь його параметри. При цьому утворюються об’єкти дуже схожі на природні. Лист папороті - один з тих об'єктів, які зручно будувати за допомогою імовірнісних розподілів. Основна ідея цього методу полягає в тому, щоб, зафіксувавши початкову точку, далі циклічно здійснювати Афінні перетворення системи координат, в якій точка будується. Тобто, якщо на певному кроці циклу є точка точка А з координатами (х0, y0), то при наступній ітерації циклу зображується точка В, чиї координати мають вигляд (а * х0 + в * y0 + с, d * х0 + e * y0 + f ) . Таким чином спостерігається явне вираження "нової" системи координат (точка В) через "стару" (точка А). У свою чергу коефіцієнти перетворення систем координат вибираються залежно від попадання деякої випадкової величини у відповідний діапазон значень .У даному прикладі випадкова величина приймає значення з відрізка від 0 до 1. Обрані наступні діапазони для цієї випадкової величини : від 0 до 0.85 - відповідає перетворенню безлічі точок, що відповідають за "густоту" і " висоту" листа папороті . від 0.85 до 0.92 - малює листочки зліва від стебла від 0.92 до 0.99 - малює листочки праворуч від стебла решта - зображення стебла Алгоритм Ф: Ф1: Початкові значення. Встановлюємо координати x := 1.0; y := 1.0; Лічильник циклу k := 1. Ф2: Обчислення випадкового параметра. p := random; t := x; Ф3: Афінні перетворення. Якщо p <= 0.85, то: x := 0.84 * x -0.045 * y; y := 0.045 * t + 0.86 * y + 1.6; Якщо p <= 0.92, то: x := 0.25 * x - 0.26 * y; y := 0.23 * t + 0.25 * y + 1.6; Якщо p <= 0.99, то: x := -0.135 * x + 0.28 * y; y := 0.26 * t + 0.245 * y + 0.44; Інакше: x := 0.0; y := 0.16 * y; Ф4: Інкремент та перевірка лічильника. k := k + 1; Якщо k = iterations (задана к-сть кроків), то: завершення, інакше: перехід на крок Ф2. Текст програми (середовище Delphi 7) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls; type TForm1 = class(TForm) btn1: TButton; grp1: TGroupBox; paintbox1: TPaintBox; LE1: TLabeledEdit; StartX: TLabeledEdit; StartY: TLabeledEdit; stat1: TStatusBar; btn2: TButton; btn3: TButton; msec: TLabeledEdit; procedure btn1Click(Sender: TObject); procedure draw(); procedure erase(); procedure info(); procedure FormCreate(Sender: TObject); procedure StartYExit(Sender: TObject); procedure StartXExit(Sender: TObject); procedure LE1Exit(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure msecExit(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation const //максимальна кількість ітерацій MAX_ITER = 100000; var //масиви координат точок PixArrX, PixArrY: array[1..MAX_ITER] of Integer; //поточний крок виконання фракталу PixIndex: Integer; //к-сть ітерацій, яку виконуємо за один раз iterations: Integer; {$R *.dfm} //переведення тексту в число з врахуванням помилок вводу, //а також перевірка на допустимі межі function TextToInt(s: String; a,b,default: Integer): Integer; var str: string; i: Integer; begin for i:= 1 to Length(s) do begin if...
Антиботан аватар за замовчуванням

02.06.2014 21:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини